
template <class T>
struct AddIgnore
{
public:
	static bool insertData() {
		return false;
	}
};

template <class T>
struct AddException
{
public:
	static bool insertData() {
		static char err[128];
		sprintf(err, "Buffer is full");
		throw err;
		return false;
	}
};

template <class T>
struct AddOverwrite
{
public:
	static bool insertData() {
		return true;
	}
};


template <class T>
struct EmptyException
{
public:
	static T get() {
		static char err[128];
		sprintf(err, "Buffer is empty");
		throw err;
		return 0;
	}
};

template <class T>
struct EmptyDefault
{
public:
	static bool get() {
		return 0;
	}
};